package com.quectel.core.module.device.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @author caolu
 * @email louis.cao@quectel.com
 * @date 2019-05-31 12:11:16
 */
@Data
public class DeviceTypeDto implements Serializable {

    /**
     * ID
     */
    private Long id;
    /**
     * 设备类型名称
     */
    @Schema(description = "设备类型名称")
    @NotEmpty
    @Length(min = 1, max = 80)
    private String name;
    /**
     * 设备类型编码
     */
    @Schema(description = "设备类型编码")
    @NotEmpty
    @Length(min = 1, max = 50)
    private String code;
    /**
     * 所属厂商
     */
    @Schema(description = "所属厂商")
    @NotNull
    private Long vendorId;
    /**
     * 所属厂商名称
     */
    @Schema(description = "所属厂商名称")
    private String vendorName;
    /**
     * 所属设备种类
     */
    @Schema(description = "所属设备种类")
    @NotNull
    private Long deviceCategoryId;
    /**
     * 设备种类名称
     */
    @Schema(description = "设备种类名称")
    private String deviceCategoryName;

    /**
     * 扩展字段
     */
    @Schema(description = "扩展字段")
    private String extraAttr;

    /**
     * 失联时间 分钟 0为允许永久失联
     */
    @Schema(description = "失联时间")
    private Integer allowLostTime;

    /**
     * 备注
     */
    @Schema(description = "备注")
    @Length(max = 80)
    private String remark;
    /**
     * 创建人ID
     */
    @Schema(description = "创建人ID")
    private String creator;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;
    /**
     * 修改人ID
     */
    @Schema(description = "修改人ID")
    private String editor;
    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private Date editTime;
}
